home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / sossnt.zip / SOSSNT / SRC / PATCHES.TXT < prev    next >
Text File  |  1993-02-27  |  7KB  |  211 lines

  1. This is a log of patches made to SOS by Rich Braun Jan-Apr 1991:
  2.  
  3.  
  4. - NFSLOOKUP went into an infinite loop whenever it encountered a
  5.     subdirectory file (fixed in files.c).
  6.  
  7.     Client command:  ls
  8.  
  9. - Attempts to create a file with a long name caused SOS to crash
  10.     (fixed in files.c).
  11.  
  12.     Client command:  cat >longfile.name
  13.  
  14. - STATFS returned incorrect block counts.  (fixed in files.c)
  15.  
  16.     Client command:  df -v
  17.  
  18. - Didn't support blocks larger than 500 bytes.  (fixed in nfs.h)
  19.  
  20.     Client command:  mount -f NFS,rsize=512,wsize=512
  21.  
  22. - SETATTR did not have support for setting the size of a file; symptom
  23.     was that rewriting a file to a shorted length left old junk
  24.     at the end.  (fixed in nfs.c, files.c)
  25.  
  26.     Client command:  cp shortfile longfile
  27.  
  28. - intopn() did a malloc for the path name, wasting processor time.  Moved
  29.     it to the caller's stack frame.  Also optimized out calls to
  30.     strcat (fixed in nfs.c, inodes.c, inodes.h)
  31.  
  32. - LINK didn't return an error code readable by the client.  (fixed in nfs.c)
  33.  
  34.     Client command:  ln old new
  35.  
  36. - RENAME didn't return the correct error code.  (fixed in nfs.c)
  37.  
  38.     Client command:  mv old new
  39.  
  40. - MKDIR didn't return a name-too-long error if a long filename was used.
  41.     (fixed in nfs.c, files.h, files.c)
  42.  
  43.     Client command:  mkdir longfilename
  44.  
  45. - showexps() didn't close the exports file, and in fact doesn't need
  46.     to open it anyway.  (fixed in exports.c)
  47.  
  48. - nfs.c used malloc instead of local stack variables in a number of
  49.     places.  (fixed in nfs.c)
  50.  
  51. - READDIR on large directories blew up due to the use of a 'short'
  52.     variable where a 'long' was needed.  (fixed in nfs.c, files.h,
  53.     files.c)
  54.  
  55.     Client command:  ls bigdir
  56.  
  57. - READDIR sometimes returned 0 files for a directory containing files;
  58.     problem was that 'maxbytes' was set from an unitialized
  59.     stack variable.  (fixed in nfs.c)
  60.  
  61.     Client command:  ls
  62.  
  63. - SETATTR always set the file protection even if specified as -1.  This
  64.     clobbered the read-only status.  (fixed in nfs.c)
  65.  
  66. - SETATTR did not set the modification time properly.  (fixed in files.c)
  67.  
  68.     Client command:  copy -m
  69.  
  70. - UNLINK wouldn't delete a file if it was set RDONLY.  (fixed in files.c)
  71.  
  72. - READ didn't warn of a too-large request.  (added fprintf in nfs.c)
  73.  
  74. - Mounting of a root directory didn't work.  (fixed in mountd.c, exports.c,
  75.     inodes.c, files.c)
  76.  
  77. - Moved InodeTable into far memory and increased its size. (fixed in inodes.c)
  78.  
  79. - Corrected fsid logic.  (fixed in inodes.c, files.c, mountd.c)
  80.  
  81. - Allow writes to read-only files; authentication is done at the client
  82.     side rather than the server.  (fixed in files.c)
  83.  
  84.     Client command:  cp rdonlyfile newfile
  85.  
  86. - Rewrote intopn routine to use internal stack; freed up space in inode
  87.     table--now 34 bytes per entry; originally 42.  (fixed in inodes.c)
  88.  
  89. - Eliminated lower-case requirement for the drive letter in EXPORT.US
  90.     (fixed in inodes.c, exports.c)
  91.  
  92. - Changed make files in PC/IP to squeeze the _TEXT code segment.  This
  93.     must be done in order to fit SOS into small-model.
  94.  
  95. - READDIR now returns "." and "..".  (fixed in inodes.c, files.c)
  96.  
  97.     Client command: ls
  98.  
  99. - Contents of file handles now have correct parent pointer and are
  100.     validated for certain calls.  This eliminates "can't read .."
  101.     error from pwd command.
  102.  
  103.     Client commands: pwd, ls
  104.  
  105. - If a file or directory was created with any uppercase letters, two
  106.     separate inode entries would be created erroneously.  (fixed
  107.     in nfs.c)
  108.  
  109. - The CREATE function didn't examine the caller's UID and GID, so
  110.     file_create() didn't have them.  This caused incorrect file
  111.     ownership on the Novell server.  (fixed in nfs.c)
  112.  
  113. 3/15/90 additions:
  114. - The READDIR function sent incorrect data if the number of
  115.     files in a directory filled close to 1 block.  Some NFS clients
  116.     saw empty directories if they contained about 20 files.
  117.     (fixed in nfs.c)
  118.  
  119. - READDIR didn't return '.' and '..' if a directory was empty.  (fixed
  120.     in files.c)
  121.  
  122. - RENAME didn't update the inode cache, creating "phantom" files.
  123.     (fixed in files.c, nfs.c, files.h)
  124.  
  125. - REMOVE failed if a file had been read recently; the "unlink" was
  126.     attempted before closing the file.  (fixed in files.c)
  127.  
  128. - RMDIR returned incorrect error code if a directory was not empty, etc.
  129.     (fixed in nfs.c)
  130.  
  131. - Set the UID/GID identifiers to those of the caller, to get around some
  132.     protection problems.
  133.  
  134. 4/8/90 additions:
  135. - The timezone parameter was reversed from the Unix standard.  TZ=EST5EDT
  136.     now works, rather than EST-5EDT.  Also added check for TZ variable,
  137.     forcing it to be set.  (fixed in dtime.c)
  138.  
  139. - The server could be crashed easily by specifying a long filename in a
  140.     NFSLOOKUP call.  The routine pntoin should never be called prior
  141.     to calling validate_path.  (fixed in nfs.c, files.c)
  142.  
  143.     Client command:  cat abcdefghijklmnopqrstuvwxyz
  144.  
  145. - Improved command line parser, using getopt calls.  (fixed in netd.c)
  146.  
  147. - Improved main documentation file soss.1.
  148.  
  149.  
  150. 5/10/90 additions:
  151.  
  152. - The NFS_WRITE call stored the wrong modification date.  (fixed in files.c)
  153.  
  154. - A full filesystem couldn't be mounted. (fixed in nfs.c, files.c)
  155.  
  156. - Increased buffer capacity from 512 bytes to 1024 bytes.  Added -b
  157.   command line option to allow setting the blocksize.  (fixed in rpc/clnt.h,
  158.   sock.c, netd.h, netd.c, nfs.c, nfs.h)
  159.  
  160. --------------------
  161.  
  162. The following features have been added:
  163.  
  164. - Advanced debugging macro support.  (files debug.c, debug.h)
  165.  
  166. - Improved inode caching (routines ingetentry, inattrset, inattrget,
  167.     inremnode; files inodes.c, inodes.h, nfs.c, files.c)
  168.  
  169. - Improved performance from general code cleanup.
  170.  
  171. - Root directories may now be exported.
  172.  
  173. - The EXPORTS function of mountd was not supported.  (files exports.c,
  174.     mountd.c, exports.h)
  175.  
  176.     Client command:  showmount -e
  177.  
  178. - Added partial support for Novell file access authentication.  (Excepting
  179.     directory trustees.)
  180.  
  181. - Added -t command line option to allow silent truncation of long filenames.
  182.     (files netd.c, netd.h, files.c)
  183. --------------------
  184.  
  185. The following outstanding issues are known:
  186.  
  187. - The server crashes as soon as about 7,500 nodes are created.
  188. - The mv command does not work on directories; this would require
  189.   direct I/O to disk a la the Norton Utilities.
  190. - Inodes are not recycled as files are deleted.
  191. - Code is compiled small-model and is very close to the 64K limit.
  192. - A filename beginning with dot is unsupported, and the 'rm' command
  193.     under AIX creates such files.
  194. - Daylight savings time handling requires more support than that
  195.     provided in the Microsoft library's "tzset" function.
  196. --------------------
  197.  
  198. Suggestions for improvements:
  199.  
  200. - The code could be made to run as a TSR.
  201. - The code could be made to use extended memory.
  202. - Cache file data blocks.
  203. - Prevent remote user "root" from being unconditionally trusted.
  204. - Improve the client list parser (allow numeric IP addresses).
  205. - Let administrator set protections for three classes of files: directories,
  206.   read-only files, and writable files.
  207. - Implement a full-blown authentication scheme (i.e. store UID/GID/mode of
  208.   all files).
  209. - Add PC-NFS version 1 and/or version 2 user authentication.
  210. - Upgrade to NFS protocol version 3.
  211.